Auto merge of #2048 - alexcrichton:build-script-fresh, r=brson
This commit causes a recompile to be triggered if the overridden version of a
build script changed since it was last run. Previously this wasn't tracked very
well due to fingerprints not accounting for the right data.
There are a few architectural changes here which were made to prepare for this:
* The unit of work for "running a build script" is now emitted as dependency
regardless of whether a build script is overridden or not. Previously it was
omitted if overridden.
* This unit of work has 0 dependencies if it is overridden (as we know the
output) and otherwise has the normal set of dependencies.
* The fingerprint calculation was updated to recognize when a build script
execution is overridden and instead consider the overridden value as input to
the fingerprint. This means that if the overridden values change they will
trigger a recompile.
* The "prepare a build script to run" step now emits a noop if the execution of
the build script is overridden.
After putting all that together, this commit ...
Closes #2042